From 96fb3e88328b3c268c503818e6fa8a7c210277c5 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 7 Nov 2003 21:57:20 +0000 Subject: [PATCH] Make string setters safe for self-assignment. (#122745, Soeren Sandmann) Fri Nov 7 22:55:49 2003 Matthias Clasen * gtk/gtkwindow.c (gtk_window_set_role): * gtk/gtkwindow.c (gtk_window_set_title): * gtk/gtkwidget.c (gtk_widget_set_name): * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_title): * gtk/gtkbutton.c (gtk_button_set_label): Make string setters safe for self-assignment. (#122745, Soeren Sandmann) --- ChangeLog | 9 +++++++++ ChangeLog.pre-2-10 | 9 +++++++++ ChangeLog.pre-2-4 | 9 +++++++++ ChangeLog.pre-2-6 | 9 +++++++++ ChangeLog.pre-2-8 | 9 +++++++++ gtk/gtkbutton.c | 7 +++++-- gtk/gtktreeviewcolumn.c | 8 ++++---- gtk/gtkwidget.c | 10 ++++++---- gtk/gtkwindow.c | 16 +++++++++------- 9 files changed, 69 insertions(+), 17 deletions(-) diff --git a/ChangeLog b/ChangeLog index 879c2d5175..d5ede92646 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +Fri Nov 7 22:55:49 2003 Matthias Clasen + + * gtk/gtkwindow.c (gtk_window_set_role): + * gtk/gtkwindow.c (gtk_window_set_title): + * gtk/gtkwidget.c (gtk_widget_set_name): + * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_title): + * gtk/gtkbutton.c (gtk_button_set_label): Make string setters + safe for self-assignment. (#122745, Soeren Sandmann) + Thu Nov 6 20:41:40 2003 Matthias Clasen * gtk/gtkstyle.c (gtk_style_attach): Fix doc comment. diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 879c2d5175..d5ede92646 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,12 @@ +Fri Nov 7 22:55:49 2003 Matthias Clasen + + * gtk/gtkwindow.c (gtk_window_set_role): + * gtk/gtkwindow.c (gtk_window_set_title): + * gtk/gtkwidget.c (gtk_widget_set_name): + * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_title): + * gtk/gtkbutton.c (gtk_button_set_label): Make string setters + safe for self-assignment. (#122745, Soeren Sandmann) + Thu Nov 6 20:41:40 2003 Matthias Clasen * gtk/gtkstyle.c (gtk_style_attach): Fix doc comment. diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 879c2d5175..d5ede92646 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,12 @@ +Fri Nov 7 22:55:49 2003 Matthias Clasen + + * gtk/gtkwindow.c (gtk_window_set_role): + * gtk/gtkwindow.c (gtk_window_set_title): + * gtk/gtkwidget.c (gtk_widget_set_name): + * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_title): + * gtk/gtkbutton.c (gtk_button_set_label): Make string setters + safe for self-assignment. (#122745, Soeren Sandmann) + Thu Nov 6 20:41:40 2003 Matthias Clasen * gtk/gtkstyle.c (gtk_style_attach): Fix doc comment. diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 879c2d5175..d5ede92646 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,12 @@ +Fri Nov 7 22:55:49 2003 Matthias Clasen + + * gtk/gtkwindow.c (gtk_window_set_role): + * gtk/gtkwindow.c (gtk_window_set_title): + * gtk/gtkwidget.c (gtk_widget_set_name): + * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_title): + * gtk/gtkbutton.c (gtk_button_set_label): Make string setters + safe for self-assignment. (#122745, Soeren Sandmann) + Thu Nov 6 20:41:40 2003 Matthias Clasen * gtk/gtkstyle.c (gtk_style_attach): Fix doc comment. diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 879c2d5175..d5ede92646 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,12 @@ +Fri Nov 7 22:55:49 2003 Matthias Clasen + + * gtk/gtkwindow.c (gtk_window_set_role): + * gtk/gtkwindow.c (gtk_window_set_title): + * gtk/gtkwidget.c (gtk_widget_set_name): + * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_title): + * gtk/gtkbutton.c (gtk_button_set_label): Make string setters + safe for self-assignment. (#122745, Soeren Sandmann) + Thu Nov 6 20:41:40 2003 Matthias Clasen * gtk/gtkstyle.c (gtk_style_attach): Fix doc comment. diff --git a/gtk/gtkbutton.c b/gtk/gtkbutton.c index ba8ffee66d..ae80e4a8d6 100644 --- a/gtk/gtkbutton.c +++ b/gtk/gtkbutton.c @@ -1133,10 +1133,13 @@ void gtk_button_set_label (GtkButton *button, const gchar *label) { - g_return_if_fail (GTK_IS_BUTTON (button)); + gchar *new_label; + g_return_if_fail (GTK_IS_BUTTON (button)); + + new_label = g_strdup (label); g_free (button->label_text); - button->label_text = g_strdup (label); + button->label_text = new_label; gtk_button_construct_child (button); diff --git a/gtk/gtktreeviewcolumn.c b/gtk/gtktreeviewcolumn.c index 82d8b7a539..4e176ff5cc 100644 --- a/gtk/gtktreeviewcolumn.c +++ b/gtk/gtktreeviewcolumn.c @@ -2024,13 +2024,13 @@ void gtk_tree_view_column_set_title (GtkTreeViewColumn *tree_column, const gchar *title) { + gchar *new_title; + g_return_if_fail (GTK_IS_TREE_VIEW_COLUMN (tree_column)); + new_title = g_strdup (title); g_free (tree_column->title); - if (title) - tree_column->title = g_strdup (title); - else - tree_column->title = NULL; + tree_column->title = new_title; gtk_tree_view_column_update_button (tree_column); g_object_notify (G_OBJECT (tree_column), "title"); diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 7edaa57157..98b7c5c48a 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -3929,11 +3929,13 @@ void gtk_widget_set_name (GtkWidget *widget, const gchar *name) { - g_return_if_fail (GTK_IS_WIDGET (widget)); + gchar *new_name; - if (widget->name) - g_free (widget->name); - widget->name = g_strdup (name); + g_return_if_fail (GTK_IS_WIDGET (widget)); + + new_name = g_strdup (name); + g_free (widget->name); + widget->name = new_name; if (GTK_WIDGET_RC_STYLE (widget)) gtk_widget_reset_rc_style (widget); diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index 4e62cde612..1f90be99b3 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -987,11 +987,13 @@ void gtk_window_set_title (GtkWindow *window, const gchar *title) { + char *new_title; + g_return_if_fail (GTK_IS_WINDOW (window)); - if (window->title) - g_free (window->title); - window->title = g_strdup (title); + new_title = g_strdup (title); + g_free (window->title); + window->title = new_title; if (GTK_WIDGET_REALIZED (window)) { @@ -1077,13 +1079,13 @@ void gtk_window_set_role (GtkWindow *window, const gchar *role) { + char *new_role; + g_return_if_fail (GTK_IS_WINDOW (window)); - if (role == window->wm_role) - return; - + new_role = g_strdup (role); g_free (window->wm_role); - window->wm_role = g_strdup (role); + window->wm_role = new_role; if (GTK_WIDGET_REALIZED (window)) gdk_window_set_role (GTK_WIDGET (window)->window, window->wm_role); -- 2.30.2